package es.geoorge.hundirlaflota;

/**
 * Las Casillas componen "tablero" donde se va a desarrollar el juego, tanto la colocacion del barco como la comprobacion de coordenadas ect.
 * @author Georthik
 * @version x.x
 */
public class Casilla {
    private int x,y,ancho;
    private boolean destapado;
    private boolean agua;
    
    /**
     * Constructor de la clase, por defecto se pone el valor de la variable que indica si es agua o no en false hasta que se destape dicha casilla y se descubra su contenido.
     * La variable destapado tambien se inicializa a false, cuando se compruebe la casilla se pondra en true para no poder repetir coordenadas.
     * @param x coordenada izquierda desde la que se comienza a dibujar la Casilla en el metodo onDraw(), medido en pixeles.
     * @param y coordenada superior desde la que se comienza a dibujar la Casilla en el metodo onDraw(), medido en pixeles.
     * @param ancho el ancho visual que ocupara en la pantalla cuando se dibuje, medido en pixeles.
     */
    public Casilla(int x,int y, int ancho) {
        this.x=x;
        this.y=y;
        this.ancho=ancho;
        destapado=false;
        agua=false;
    }
    
    /**
     * Este metodo se encarga de comprobar si las coordenadas recibidas se enucentran dentro de la superficie de la Casilla.
     * @param xx la coordenada x del punto a comprobar, medido en pixeles.
     * @param yy la coordenada y del punto a comprobar, medido en pixeles.
     * @return boolean con valor true si se cumple que el punto forme parte de la superficie y false si no es asi.
     */
    public boolean dentro(int xx,int yy) {
        if (xx>=this.x && xx<=this.x+ancho && yy>=this.y && yy<=this.y+ancho) 
            return true;
        else
            return false;
    }
    
    /**
     * Comprueba si la casilla ya ha sido descubierta o no
     * @return true si ha sido destapada.
     */
    public boolean isDestapado(){
    	return destapado;
    }
    
    /**
     * Modifica la variable que indica si ha sido destapada a true, es decir, indica que la casilla ya ha sido descubierta.
     */
    public void destapar(){
    	destapado=true;
    }
    
    /**
     * Modifica el contenido de la variable que indica si en esta Casilla hay un barco o no.
     * @param p cuando sea true habra agua.
     */
	public void setAgua(boolean p){
    	agua=p;
    }
	
	/**
	 * Devuelve el contenido de la variable que indica si en esta Casilla hay un barco o no.
	 * @return true habra agua.
	 */
	public boolean getAgua(){
		return agua;
	}
    
    /**
     * Devuelve la coordenada y de la Casilla para dibujarlo en el onDraw(), medido en pixeles.
     * @return y 
     */
    public int getY(){
    	return y;
    }
    
    /**
     * Devuelve la coordenada x de la Casilla para dibujarlo en el onDraw(), medido en pixeles.
     * @return x 
     */
    public int getX(){
    	return x;
    }
}
